Фильтры для обработки изображения
 
Levels
Levels(clip,input_low,gamma,input_high,output_low,output_high)

Фильтр Levels настраивает яркость, контраст и гамму. Параметры input_low и input_high определяют какое входное значение пикселя воспринимается как чисто чёрный и чисто белый; параметры output_low и output_high определяют выходные значения соответствующие чёрному и белому; и параметр gamma контролирует степень нелинейности в преобразовании. Более точно функция конвертации следующая:

output = [(input - input_low) / (input_high - input_low)]1/gamma (output_high - output_low) + output_low
 

Это один из фильтров, для которых на самом деле неплохо было бы иметь графический интерфейс (GUI). Так как сделать GUI не представляется возможным, фильтр сделан совместимым с аналогичным фильтром VirtualDub. Вы можете брать числа из диалога настройки фильтра "Levels" в VirtualDub и подставлять их в качестве параметров фильтра Levels в AVISynth получая те же результаты.

 

Работая в пространстве цвета YUY2, Levels выполняет корректировку только для яркостной составляющей, не для цветовой. Gamma-коррекция, вообще говоря, концепция цветового пространства RGB, и неясно, как выполнить её правильно в YUY2. Однако, если gamma=1.0, фильтр должен иметь одинаковый эффект как в RGB, так и в YUY2 режимах.

 

Примеры

# нулевой эффект
Levels 0,1,255,0,255

# gamma-корректировка для отображения в ярком окружении
Levels 0,1.3,255,0,255

# инвертирует изображение (делает фото-негатив)
Levels 0,1,255,255,0

Blur / Sharpen
Blur(clip,amount)
Sharpen(clip,amount)

Фильтр использует простую 3x3 размывающую или обостряющую матрицу весов пикселов. Наибольший допустимый аргумент для Blur около 1.58, который соответствует равномерному размытию 3x3 пикселя. Значение 1.0 даёт вам веса пикселов (1/4, 1/2, 1/4). Если вам требуется Гауссовское размытие большего радиуса, примените несколько копий Blur(1.0) последовательно.

 

Отрицательные значения для Blur на самом деле повышают резкость изображения, и фактически Sharpen просто псевдоним для Blur(- n). Наименьшее допустимое значение для Blur - -1.0, и наибольшее для Sharpen - 1.0


SpatialSoften / TemporalSoften
SpatialSoften(clip,radius,luma_threshold,chroma_threshold)
TemporalSoften(clip,radius,luma_threshold,chroma_threshold)

Фильтры SpatialSoften и TemporalSoften удаляют шум из видео-клипа выборочно смешивая пиксели. Это фильтры могут творить чудеса, и весьма рекомендуется попытаться использовать их. Но они также могут стереть мелкие детали если пороги слишком высоки, поэтому не перестарайтесь. И они очень медленны, особенно с большими значениями радиуса, поэтому не включайте их до тех пор, пока всё остальное не будет готово.

 

SpatialSoften заменяет каждый пиксель в кадре средним всех соседних выборок отличающихся от центральной выборки не более чем на указанное пороговое значение. "Соседний" значит пиксель не далее чем на +/- radius в направлениях X и Y. Пороги используются как luma_threshold для Y (яркостной составляющей) выборок, и chroma_threshold для U и V (цветовой составляющей) выборок.

 

TemporalSoften аналогичен, исключая то, что он просматривает один и тот же пиксель в соседних кадрах. Используются все кадры не далее чем на +/- radius отстоящие от центрального. Этот фильтр не выглядит столь же эффективным, как SpatialSoften.

 

Рекомендуется "поиграть" с параметрами для этих фильтров, чтобы получить представление о том, что они делают - к примеру попробуйте установить одному из трёх параметров очень высокое значение, оставляя другие с низким, и смотрите что выйдет. Помните, что установка любого из параметров в 0.0 станет причиной очень медленного ничего-ни-делания.

 

В AVISynth, SpatialSoften и TemporalSoften работают только в пространстве цвета YUY2. Можно использовать ConvertToYUY2 фильтр если исходный видео-клип не в YUY2 формате.


FixLuminance
FixLuminance(clip,intercept,slope)

Видеомагнитофон иногда имеет раздражающую привычку повышать яркость снизу в верх у каждого кадра. Цель этого фильтра последовательное затемнение верха изображения для компенсации. Если с вашим видеомагнитофоном всё в порядке, можете считать что этого фильтра нет.

 

Этот фильтр работает только в цветовом пространстве YUY2.


FixBrokenChromaUpsampling
FixBrokenChromaUpsampling(clip)

Замечено, что MS DV кодек обрабатывает цветовые каналы неверно, что может быть компенсировано фильтром FixBrokenChromaUpsampling. Вы должны поместить его после DirectShowSource, в случае использования MS DV кодека, или если вы заметите грязные линии появляющиеся в чересстрочных изображениях.


Letterbox
Letterbox(clip,top,bottom)

Letterbox просто зачерняет верхние top и нижние bottom строки каждого кадра. Фильтр применим в двух случаях: во-первых он может убрать паразитный шум видео с существующих чёрных полос изображения; во-вторых он может убрать замусоренные строки, часто возникающие внизу кадра при захвате с плёнок VHS

 

Действие Letterbox может быть повторено комбинацией фильтров Crop и AddBorders, но Letterbox быстрее и проще

 

Обычно, лучше обрезать фильтром Crop или CropBottom чем прятать используя Letterbox. Однако, в некоторых случаях, особенно если вы кодируете в MPEG, лучше использовать Letterbox, что позволяет сохранять стандартные размеры кадра, такие как 352x288 или 320x240. Некоторые MPEG проигрыватели не понимают видео имеющее нестандартный размер кадра.


Subtitle
Subtitle(clip,"text",x,y,first-frame,last-frame,"font-name",point-size[,text-color[,halo-color]])
Subtitle(clip,"text")

Фильтр Subtitle добавляет строку сглаженного текста в последовательность кадров. Если вы желаете более одно субтитра, или субтитр содержащий более одной строки, вы должны сцепить вместе несколько фильтров Subtitle. Этот фильтр очевидно неприменим для чего-то большего, чем случайное использование.

 

Цвет текста и ореола должны быть заданы как шестнадцатеричное RGB значение, как в HTML, не считая того, что начинается оно с $ вместо #. (# Используется для комментирования).

 

Альтернативная, краткая форма полезна когда вас не беспокоит, как выглядят субтитры до тех пор, пока вы их видите. К примеру, когда вы используете фильтр StackVertical, который покажет несколько вариантов кадра сразу, и желаете пометить их, чтобы помнить что есть что.

 

AVISynth использует фильтр внутри для метода Version и для вывода сообщений об ошибках. Ещё механизм субтитров используется в ShowFrameNumber.


PeculiarBlend
PeculiarBlend(clip,cutoff)

Фильтр смешивает каждый кадр с последующим особым образом. Часть кадра ниже cutoff строк не изменяется. Часть выше cutoff-30 строк заменяется соответствующей частью следующего кадра. 30 строк в середине смешиваются последовательно, чтобы скрыть переключение кадров.

 

Может возникнуть вопрос, кому нужен этот фильтр. Что ж, дело вот в чём. Ко многим видео-клипам исходно снятым на плёнку применена техника 3:2 pulldown, описанная в описании фильтра Pulldown. Однако некоторые используют более неприятную систему в которой пересечение со следующим кадром происходит в середине поля. Другими словами индивидуальные поля как один кадр фильма вверху и другой внизу. Этот специфический эффект фильтр частично исправляет. Он должен использоваться после или до фильтра Pulldown. Чтобы определить cutoff, изучите смешанный таким образом кадр и установите cutoff в номер первой строки, где вы заметите смешивание.

 

В AVISynth, фильтр работает только в пространстве цветов YUY2. Можно использовать фильтр ConvertToYUY2 если источник не YUY2.


изменение размера кадра
[изменение размера кадра]
команды компактно
[команды компактно]
команды развёрнуто
[команды развёрнуто]
конвертация формата цвета
[конвертация формата цвета]